package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.AppUser;
import com.ruoyi.system.domain.Research;
import com.ruoyi.system.domain.vo.appUserVo;

/**
 * 用户，存储用户基本信息。Service接口
 *
 * @author ruoyi
 * @date 2024-06-25
 */
public interface IAppUserService
{
    /**
     * 查询用户，存储用户基本信息。
     *
     * @param id 用户，存储用户基本信息。主键
     * @return 用户，存储用户基本信息。
     */
    public AppUser selectUserById(Long id);

    /**
     * 查询用户，存储用户基本信息。列表
     *
     * @param user 用户，存储用户基本信息。
     * @return 用户，存储用户基本信息。集合
     */
    public List<AppUser> selectUserList(AppUser user);

    /**
     * 新增用户，存储用户基本信息。
     *
     * @param user 用户，存储用户基本信息。
     * @return 结果
     */
    public int insertUser(AppUser user);

    /**
     * 修改用户，存储用户基本信息。
     *
     * @param user 用户，存储用户基本信息。
     * @return 结果
     */
    public int updateUser(AppUser user);

    /**
     * 批量删除用户，存储用户基本信息。
     *
     * @param ids 需要删除的用户，存储用户基本信息。主键集合
     * @return 结果
     */
    public int deleteUserByIds(Long[] ids);

    /**
     * 删除用户，存储用户基本信息。信息
     *
     * @param id 用户，存储用户基本信息。主键
     * @return 结果
     */
    public int deleteUserById(Long id);

    /**
     * 更新状态
     */
    public int updateAppUserStatus(AppUser user);

    /**
     * 查询医院对应得项目
     */
    public List<Research> resByHospId(int id);

    /**
     * 最新版本得新增小程序用户
     */
    public int insertNewApp(appUserVo app);

    /**
     * 进行表关联
     */
    public int insertRu(appUserVo app);

    /**
     * 最新版本得修改小程序用户
     */
    public int updateNewApp(appUserVo app);

    /**
     * 进行关联修改
     */
    public int updateRu(appUserVo app);
}
